// import com.alibaba.druid.sql.ast.SQLExpr_ptr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLStatementImpl.h"

class SQLCopyFromStatement : virtual public SQLStatementImpl
{
public:
  SQLExprTableSource_ptr table;
  SQLName_list_ptr columns;
  SQLExpr_ptr from;
  SQLExpr_ptr accessKeyId;
  SQLExpr_ptr accessKeySecret;
  SQLAssignItem_list_ptr options;
  SQLAssignItem_list_ptr partitions;

  SQLCopyFromStatement();
  SHAREDOBJECT(SQLCopyFromStatement);
  // @Override
  void accept0(SQLASTVisitor_ptr v);

  SQLExprTableSource_ptr getTable();

  void setTable(SQLExprTableSource_ptr x);

  SQLName_list_ptr getColumns();

  SQLExpr_ptr getFrom();

  void setFrom(SQLExpr_ptr x);

  SQLExpr_ptr getAccessKeyId();

  void setAccessKeyId(SQLExpr_ptr x);

  SQLExpr_ptr getAccessKeySecret();

  void setAccessKeySecret(SQLExpr_ptr x);

  SQLAssignItem_list_ptr getOptions();

  SQLAssignItem_list_ptr getPartitions();
};
